Surface Filling/pl

Powierzchnia 3D: Wypełnianie

Lokalizacja w menu
Surface → Filling
Środowisko pracy
Powierzchnia 3D
Domyślny skrót
brak
Wprowadzono w wersji
0.17
Zobacz także
brak

Opis

Polecenie Wypełnianie tworzy powierzchnię z serii połączonych krawędzi granicznych. Krzywizna powierzchni może być dodatkowo kontrolowana przez krawędzie i wierzchołki, które nie są krawędziami granicznymi, oraz powierzchnię podpierającą.

Geometria bazowa może należeć do krzywych utworzonych za pomocą środowiska Rysunek Roboczy lub Szkicownik, ale może również należeć do obiektów bryłowych, takich jak te utworzone za pomocą środowiska Część lub Projekt Części.

Dwie wypełnione powierzchnie ograniczone czterema krawędziami znajdującymi się na płaszczyźnie XY. Powierzchnia po prawej stronie jest dodatkowo kontrolowana przez krawędź niebędącą granicą.

Użycie

  1. Naciśnij przycisk Wypełnianie.
  2. Otworzy się panel zadań Granice. Zobacz dostępne Opcje.
  3. Wybierz dwie lub więcej krawędzi w oknie widoku 3D:
    • W tym momencie nie ma potrzeby naciskania przycisku Dodaj krawędź w sekcji Granice.
    • Krawędzie muszą być wybrane w odpowiedniej kolejności.
    • Krawędzie muszą być połączone, ale cała granica nie musi być zamknięta.
    • Kompletna granica nie powinna się przecinać.
    • W przypadku okrągłej granicy 360° można wybrać dwie półokrągłe krawędzie.
  4. Podgląd ostatecznego kształtu zostanie wyświetlony po wybraniu wystarczającej ilości prawidłowej geometrii.
  5. Opcjonalnie wybierz Powierzchnia pomocnicza. Zobacz Przykład.
  6. Opcjonalnie wybierz jedno lub więcej Wiązania krawędziowe.
  7. Opcjonalnie wybierz jedno lub więcej Wiązań wierzchołków.
  8. Naciśnij przycisk OK.

Opcje

Przykład

Polecenie Powierzchnia podparcia działa jako dodatkowe ograniczenie dla powierzchni. Poniższy prosty przykład pozwoli zrozumieć, jak to działa:

  1. W środowisku pracy Część utwórz walec i ustaw jego DANEkąt na 180°.
  2. Przełącz się ponownie na środowisko pracy Powierzchnia 3D i naciśnij przycisk Wypełnienie.
  3. Wybierz dwie półokrągłe krawędzie i dwie proste krawędzie, które je łączą.
  4. Wynik jest zgodny z czterema krawędziami granicznymi, ale wewnętrzny kształt jest zupełnie inny od powierzchni cylindrycznej.
  5. Edytuj obiekt Powierzchnia i dla Powierzchnia podparcia wybierz powierzchnię cylindryczną.
  6. Zmodyfikowany kształt znacznie lepiej pasuje do powierzchni walcowej.

Właściwości

Obiekt Wypełnienie (klasa Surface::Filling) jest pochodną podstawowej klasy Część: Cecha (klasa Part::Feature, poprzez klasę podrzędną Part::Spline), dlatego też dzieli z nią wszystkie jej właściwości.

Oprócz właściwości opisanych na stronie Cecha części, obiekt Rozszerz powierzchnię, posiada następujące właściwości w edytorze właściwości.

Dane

Wypełnienie

Widok

Podstawa

Tworzenie skryptów

Zobacz również: FreeCAD podstawy tworzenia skryptów.

Narzędzie Wypełnienie powierzchni może być używane w makrodefinicjach i z konsoli Python poprzez dodanie obiektu Surface::Filling.

import FreeCAD as App
import Draft

doc = App.newDocument()

a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)

points1 = [a, App.Vector(-20, -8, 0), App.Vector(-17, 7, 0), b]
obj1 = Draft.make_bspline(points1)

points2 = [b, App.Vector(0, 25, 0), c]
obj2 = Draft.make_bspline(points2)

points3 = [c, App.Vector(37, 4, 0), d]
obj3 = Draft.make_bspline(points3)

points4 = [d, App.Vector(-2, -18, 0), a]
obj4 = Draft.make_bspline(points4)
doc.recompute()

surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj1, "Edge1"),
                      (obj2, "Edge1"),
                      (obj3, "Edge1"),
                      (obj4, "Edge1")]
doc.recompute()

# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
              App.Vector(4, 0, 7),
              App.Vector(18, 0, -5),
              App.Vector(25, 0, 0),
              App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()

surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()

# ---------------------------------------------------------
aux_v1 = Draft.make_line(App.Vector(-13, -12, 5),
                         App.Vector(-13, -12, -5))
aux_v2 = Draft.make_line(App.Vector(-3, 18, 5),
                         App.Vector(-3, 18, -5))
doc.recompute()

surf.Points = [(aux_v1, "Vertex2"),
               (aux_v2, "Vertex1")]
doc.recompute()